package com.example.contadorcomida;

import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends ActivityBasic {
	// VARIABLE
	private Contadores contadores;
	private int cantidadMaxima=0;
	
	// LISTENER
	private OnClickListener listenerEmpezar = new OnClickListener() {
		@Override
		public void onClick(View v) {
			TextView textViewMuzza = (TextView) findViewById(R.id.countMuzza);
			textViewMuzza.setText( String.valueOf(contadores.getContadorMuzza()) );
			TextView textViewFugazza = (TextView) findViewById(R.id.countCebolla);
			textViewFugazza.setText( String.valueOf(contadores.getContadorFugazza()) ); 
			TextView textViewJamon = (TextView) findViewById(R.id.countJamonYQueso);
			textViewJamon.setText( String.valueOf(contadores.getContadorJamon()) );
			TextView textViewVienese = (TextView) findViewById(R.id.countVienesa);
			textViewVienese.setText( String.valueOf(contadores.getContadorVienesa()) );
		}
	};
	
	private OnClickListener listenerMuzza = new OnClickListener() {
		@Override
		public void onClick(View v) {
			contadores.aumentarMuzza(); 
			TextView textViewMuzza = (TextView) findViewById(R.id.countMuzza);
			textViewMuzza.setText( String.valueOf(contadores.getContadorMuzza()) );
			
			contarTotalDePizzasComidas(); 
		}
	};

	private OnClickListener listenerFugazza = new OnClickListener() {
		@Override
		public void onClick(View v) {
			contadores.aumentarFugazza(); 
			TextView textViewFugazza = (TextView) findViewById(R.id.countCebolla);
			textViewFugazza.setText( String.valueOf(contadores.getContadorFugazza()) );
			
			contarTotalDePizzasComidas(); 
		}
	};

	private OnClickListener listenerJamon = new OnClickListener() {
		@Override
		public void onClick(View v) {
			contadores.aumentarJamon();
			TextView textViewJamon = (TextView) findViewById(R.id.countJamonYQueso);
			textViewJamon.setText( String.valueOf(contadores.getContadorJamon()) );
			
			contarTotalDePizzasComidas(); 
		}
	};

	private OnClickListener listenerVienesa = new OnClickListener() {
		@Override
		public void onClick(View v) {
			contadores.aumentarVienesa(); 
			TextView textViewVienese = (TextView) findViewById(R.id.countVienesa);
			textViewVienese.setText( String.valueOf(contadores.getContadorVienesa()) );
			
			contarTotalDePizzasComidas(); 
		}
	};
	
	private OnClickListener listenerLlamar = new OnClickListener() {
		@Override
		public void onClick(View v) {
			llamarPorTelefonoActivity(); 
		}
	};
	
	private OnClickListener listenerTerminar= new OnClickListener() {
		@Override
		public void onClick(View v) {
			BaseDeDatos base = new BaseDeDatos(MainActivity.this); 
			
			SQLiteDatabase db = base.getWritableDatabase(); 

			ContentValues pizzas = new ContentValues(); 
			pizzas.put("PizzasAComer", contadores.getCantidadMaxima()); 
			pizzas.put("PizzasComidas", contadores.contadorTotal()); 
			pizzas.put("PizzasJyQComidas", contadores.getContadorJamon()); 
			pizzas.put("PizzasMuzzaComidas", contadores.getContadorMuzza()); 
			pizzas.put("PizzasFugazzaComidas", contadores.getContadorFugazza()); 
			pizzas.put("PizzasVienesaComidas", contadores.getContadorVienesa()); 
			
			db.insert("Pizza", null, pizzas); 
			db.close(); 
		}
	};
	
	// AUXILIAR
	public void contarTotalDePizzasComidas(){
		TextView textViewTotal = (TextView) findViewById(R.id.countTotal);
		textViewTotal.setText( String.valueOf(contadores.contadorTotal()) );
		
		if(contadores.contadorTotal() > this.cantidadMaxima){
			textViewTotal.setTextColor(getResources().getColor(R.color.rojo)); 
			boolean habilitaAdvertencia = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("valor", false); 
			if (habilitaAdvertencia)
				Toast.makeText(this, R.string.advertencia, Toast.LENGTH_LONG).show();
		}
	}

	public void llamarPorTelefonoActivity(){
		String numero = "tel:1551492855"; 
		Intent intent = new Intent(Intent.ACTION_CALL); 
		intent.setData(Uri.parse(numero)); 
		startActivity(intent); 
	}

	// ACCIONES
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.page_main);
		
		Contadores contadores = (Contadores) getLastNonConfigurationInstance();
		
		this.cantidadMaxima = getIntent().getIntExtra("cantidad", 0);

		if (contadores == null) {
			this.contadores = new Contadores();
			this.contadores.setCantidadMaxima(this.cantidadMaxima);
		} else {
			this.contadores = contadores;
			this.cantidadMaxima = contadores.getCantidadMaxima();
			
			TextView textViewMuzza = (TextView) findViewById(R.id.countMuzza);
			textViewMuzza.setText( String.valueOf(contadores.getContadorMuzza()) );
			
			TextView textViewVienese = (TextView) findViewById(R.id.countVienesa);
			textViewVienese.setText( String.valueOf(contadores.getContadorVienesa()) );
			
			TextView textViewFugazza = (TextView) findViewById(R.id.countCebolla);
			textViewFugazza.setText( String.valueOf(contadores.getContadorFugazza()) );
			
			TextView textViewJamon = (TextView) findViewById(R.id.countJamonYQueso);
			textViewJamon.setText( String.valueOf(contadores.getContadorJamon()) );
			
			contarTotalDePizzasComidas(); 
		}
		
		Intent intent = new Intent(this, MyService.class); 
		this.startService(intent);
		
		findViewById(R.id.pizzaMuzza).setOnClickListener(this.listenerMuzza); 
		findViewById(R.id.pizzaCebolla).setOnClickListener(this.listenerFugazza); 
		findViewById(R.id.pizzaJamonYQueso).setOnClickListener(this.listenerJamon); 
		findViewById(R.id.pizzaVienesa).setOnClickListener(this.listenerVienesa); 
		findViewById(R.id.btnLlamar).setOnClickListener(this.listenerLlamar); 
		findViewById(R.id.btnTerminar).setOnClickListener(this.listenerTerminar); 
		
	}
	
	@Override
	public Object onRetainNonConfigurationInstance() {
		return this.contadores;
	}

	// GET & SET
	public OnClickListener getListenerFugazza() {
		return listenerFugazza;
	}

	public void setListenerFugazza(OnClickListener listenerFugazza) {
		this.listenerFugazza = listenerFugazza;
	}

	public OnClickListener getListenerEmpezar() {
		return listenerEmpezar;
	}

	public void setListenerEmpezar(OnClickListener listenerEmpezar) {
		this.listenerEmpezar = listenerEmpezar;
	}
}
